package com.tjbank.cssys.dto;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.tjbank.cssys.api.INode;
import com.tjbank.cssys.framework.base.dto.CommonDTO;

import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CkOutsourcingCompanyDTO extends CommonDTO implements INode {

    private String bank;

    private String outsourcingCompany;

    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date endTime;

    private Double profitMargin;

    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date updateTime;

    private String updatePeople;

    private Integer category;

    private String mechanismId;

    private String caseType;

    private String checkModel;

    private Double agencyPrepay;

    private Double agencyReturnRate;

    private Double rateM1;

    private Double rateM2;

    private Double rateM3;

    private Double rateM4;

    private Double rateM5;

    private Double rateM6;

    private Double rateM6Plus;

    private Double backRate;

    private Integer peopleNum;

    private Double peoplePrice;

    private Integer powerValue;

    /** ❤❤❤❤❤ */
    private static final long serialVersionUID = 1L;

    /** 机构代码 **/
    @NotBlank(message = "code:机构代码不能为空")
    private String code;

    /** 机构名称 */
    @NotBlank(message = "name:机构名称不能为空")
    private String name;

    /** 类型 */
    private String type;

    /** 状态 */
    protected String state;

    /** 父ID */
    @NotBlank(message = "parentId:父ID不能为空")
    private String parentId;

    /** 租户代码 */
    @NotBlank(message = "tenantCode:租户代码不能为空")
    private String tenantCode;

    /** 租户名称 */
    @NotBlank(message = "tenantName:租户名称不能为空")
    private String tenantName;

    private Integer lft;

    private Integer rgt;

    private List<INode> children;

    @Override
    public List<INode> getChildren() {
        if (this.children == null) {
            this.children = new ArrayList<>();
        }
        return this.children;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getBank() {
        return bank;
    }

    public void setBank(String bank) {
        this.bank = bank;
    }

    public String getOutsourcingCompany() {
        return outsourcingCompany;
    }

    public void setOutsourcingCompany(String outsourcingCompany) {
        this.outsourcingCompany = outsourcingCompany;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    @Override
    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }

    public Integer getLft() {
        return lft;
    }

    public void setLft(Integer lft) {
        this.lft = lft;
    }

    public Integer getRgt() {
        return rgt;
    }

    public void setRgt(Integer rgt) {
        this.rgt = rgt;
    }

    public void setChildren(List<INode> children) {
        this.children = children;
    }


    public Double getProfitMargin() {
        return profitMargin;
    }

    public void setProfitMargin(Double profitMargin) {
        this.profitMargin = profitMargin;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdatePeople() {
        return updatePeople;
    }

    public void setUpdatePeople(String updatePeople) {
        this.updatePeople = updatePeople;
    }

    public Integer getCategory() {
        return category;
    }

    public void setCategory(Integer category) {
        this.category = category;
    }

    public String getMechanismId() {
        return mechanismId;
    }

    public void setMechanismId(String mechanismId) {
        this.mechanismId = mechanismId;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getCaseType() {
        return caseType;
    }

    public void setCaseType(String caseType) {
        this.caseType = caseType;
    }

    public String getCheckModel() {
        return checkModel;
    }

    public void setCheckModel(String checkModel) {
        this.checkModel = checkModel;
    }

    public Double getAgencyPrepay() {
        return agencyPrepay;
    }

    public void setAgencyPrepay(Double agencyPrepay) {
        this.agencyPrepay = agencyPrepay;
    }

    public Double getAgencyReturnRate() {
        return agencyReturnRate;
    }

    public void setAgencyReturnRate(Double agencyReturnRate) {
        this.agencyReturnRate = agencyReturnRate;
    }

    public Double getRateM1() {
        return rateM1;
    }

    public void setRateM1(Double rateM1) {
        this.rateM1 = rateM1;
    }

    public Double getRateM2() {
        return rateM2;
    }

    public void setRateM2(Double rateM2) {
        this.rateM2 = rateM2;
    }

    public Double getRateM3() {
        return rateM3;
    }

    public void setRateM3(Double rateM3) {
        this.rateM3 = rateM3;
    }

    public Double getRateM4() {
        return rateM4;
    }

    public void setRateM4(Double rateM4) {
        this.rateM4 = rateM4;
    }

    public Double getRateM5() {
        return rateM5;
    }

    public void setRateM5(Double rateM5) {
        this.rateM5 = rateM5;
    }

    public Double getRateM6() {
        return rateM6;
    }

    public void setRateM6(Double rateM6) {
        this.rateM6 = rateM6;
    }

    public Double getRateM6Plus() {
        return rateM6Plus;
    }

    public void setRateM6Plus(Double rateM6Plus) {
        this.rateM6Plus = rateM6Plus;
    }

    public Double getBackRate() {
        return backRate;
    }

    public void setBackRate(Double backRate) {
        this.backRate = backRate;
    }

    public Integer getPeopleNum() {
        return peopleNum;
    }

    public void setPeopleNum(Integer peopleNum) {
        this.peopleNum = peopleNum;
    }

    public Double getPeoplePrice() {
        return peoplePrice;
    }

    public void setPeoplePrice(Double peoplePrice) {
        this.peoplePrice = peoplePrice;
    }

    public Integer getPowerValue() {
        return powerValue;
    }

    public void setPowerValue(Integer powerValue) {
        this.powerValue = powerValue;
    }
}